import Vue from "vue";
import Vuex from "vuex";

Vue.use(Vuex);

// 创建了一个仓库
const store = new Vuex.Store({
  // 数据 state
  state: {
    // 自定义的 全局共享的数据
    // 商品数据
    cateList: uni.getStorageSync("cateList") || [],
  },
  getters: {
    // 获取勾选了的商品数组
    checkedGoods: (state) => {
      return state.cateList.filter((v) => v.checked);
    },
    // 总价格
    totalPrice:(state, getters)=> {
      return getters.checkedGoods.reduce(
        (total, v) => (total += v.count * v.goods_price),
        0
      );
    },
    // 总数量
    totalCount(state, getters) {
      return getters.checkedGoods.reduce(
        (total, v) => (total = total + parseInt(v.count)),
        0
      );
    },
  },

  // 负责修改仓库数据的对象
  // 仓库的管理员  银行柜台人员就可以了    组件 看成 来银行办理业务的客人
  mutations: {
    // 修改数据
    changeList(state, newList) {
      // 修改数据直接覆盖数组
      state.cateList = newList;
      console.log(state.cateList);

      // 保存到本地存储
      uni.setStorageSync("cateList", state.cateList);
    },
  },
});

// 导出仓库
export default store;
